﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AmiBrokerPlugin.Entities
{
    [Table("papers")]
    public struct Ticker
    {
        /// <summary>
        /// Цифровой код финансового инструмента
        /// </summary>
        [Field("paper_no")]
        public int ID;

        /// <summary>
        /// Код актива
        /// </summary>
        [Field("p_code")]
        public string Code;

        /// <summary>
        /// Код рынка
        /// </summary>
        [Field("place_code")]
        public string ExchangeCode;

        /// <summary>
        /// Торговый код инструмента
        /// </summary>
        [Field("ts_p_code")]
        public string TickerCode;

        /// <summary>
        /// Торговый код раздела
        /// </summary>
        [Field("board_code")]
        public string BoardCode;

        /// <summary>
        /// Размер лота
        /// </summary>
        [Field("lot_size")]
        public int LotSize;

        /// <summary>
        /// Количество знаков в дробной части
        /// </summary>
        [Field("decimals")]
        public int Precision;

        /// <summary>
        /// НКД
        /// </summary>
        [Field("nkd")]
        public float NKD;

        /// <summary>
        /// Размер купона
        /// </summary>
        [Field("cup_size")]
        public float CouponSize;

        /// <summary>
        /// Купонная дата
        /// </summary>
        [Field("cup_date")]
        public DateTime CouponDate;

        /// <summary>
        /// Купонный период
        /// </summary>
        [Field("cup_period")]
        public int CouponPeriod;

        /// <summary>
        /// Номинал
        /// </summary>
        [Field("nominal")]
        public int Nominal;

        /// <summary>
        /// Дата погашения
        /// </summary>
        [Field("mat_date")]
        public DateTime MaturityDate;

        /// <summary>
        /// Идёт в залог
        /// </summary>
        [Field("allow_pawn")]
        public bool AllowPawn;

        /// <summary>
        /// Просрочена
        /// </summary>
        [Field("expired")]
        public bool Expired;

        /// <summary>
        /// Возможна короткая позиция
        /// </summary>
        [Field("allow_short")]
        public bool AllowShort;

        /// <summary>
        /// Контрагент
        /// </summary>
        [Field("firm_code")]
        public string FirmCode;

        /// <summary>
        /// Шаг цены
        /// </summary>
        [Field("price_step")]
        public float PriceStep;

        /// <summary>
        /// Дата заведения инструмента
        /// </summary>
        [Field("create_date")]
        public int CreateDate;

        /// <summary>
        /// Цифровой код базового финансового инструмента
        /// </summary>
        [Field("base_paper_no")]
        public int BaseID;

        /// <summary>
        /// Гарантийное обеспечение покупки
        /// </summary>
        [Field("go_buy")]
        public float GuarantyBuy;

        /// <summary>
        /// Гарантийное обеспечение продажи
        /// </summary>
        [Field("go_sell")]
        public float GuarantySell;

        /// <summary>
        /// Гарантийное обеспечение покрытое
        /// </summary>
        [Field("go_covered")]
        public float GuarantyCovered;

        /// <summary>
        /// Гарантийное обеспечение непокрытое
        /// </summary>
        [Field("go_uncovered")]
        public float GuarantyUncovered;

        /// <summary>
        /// Стоимость шага цены
        /// </summary>
        [Field("price_step_cost")]
        public float PriceStepCost;

        /// <summary>
        /// Короткое название
        /// </summary>
        [Field("ansi_name")]
        public string ShortName;

        /// <summary>
        /// Код типа актива
        /// </summary>
        [Field("at_code")]
        public string TypeCode;

        /// <summary>
        /// Валюта номинала
        /// </summary>
        [Field("nominal_curr")]
        public string NominalCurr;

        /// <summary>
        /// Название рынка
        /// </summary>
        [Field("place_name")]
        public string ExchangeName;

        /// <summary>
        /// Код валюты котировок
        /// </summary>
        [Field("curr_code")]
        public string CurrCode;

        /// <summary>
        /// Флаг доступности для данного рынка потока всех сделок
        /// </summary>
        [Field("allow_all_trades")]
        public bool AllowAllTrades;

        /// <summary>
        /// Возможность подачи заявок
        /// </summary>
        [Field("allow_trade")]
        public bool AllowTrade;

        /// <summary>
        /// Strike-цена контракта
        /// </summary>
        [Field("strike")]
        public float Strike;

    }
}
